// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  switch (event.module) {
    case 'cate': {
      return cate(event)
    }
    case 'article': {
      return article(event)
    }
    default: {
      return '模块不存在'
    }
  }
}

//分类管理
async function cate(event){
  try {
    switch(event.action){
      case 'add':{
        return await db.collection('cate').add({data:event.params})
      }
      case 'delete': {
        return await db.collection('cate').where(event.map).remove();
      }
      case 'update': {
        return await db.collection('cate').doc(event.id).update({ data: event.params });
      }
      case 'query': {
        let limit = event.num || 1000;
        return await db.collection('cate').where(event.map).limit(limit).get();
      }
      default: {
        return '方法不存在'
      }
    }   
  } catch (e) {
    return e;
  }
}

//文章管理
async function article(event) {
  try {
    switch (event.action) {
      case 'add': {
        return await db.collection('article').add({ data: event.params })
      }
      case 'delete': {
        return await db.collection('article').where(event.map).remove();
      }
      case 'update': {
        return await db.collection('article').doc(event.id).update({ data: event.params });
      }
      case 'query': {
        let limit = event.num || 1000;
        return await db.collection('article').where(event.map).limit(limit).get();
      }
      default: {
        return '方法不存在'
      }
    }
  } catch (e) {
    return e;
  }
}
